package com.wondertek.service.service.sys.impl;

import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.wondertek.service.dto.sys.req.SysConfigReq;
import com.wondertek.service.entity.sys.SysConfigPo;
import com.wondertek.service.mapper.sys.SysConfigMapper;
import com.wondertek.service.service.sys.ISysConfigService;
import com.wondertek.service.service.sys.ISysFileService;
import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;

import java.util.Optional;

/**
 * @author wangyu
 */
@Service
@Slf4j
public class SysConfigServiceImpl extends ServiceImpl<SysConfigMapper, SysConfigPo> implements ISysConfigService {

    @Resource
    private ISysFileService sysFileService;

    @Override
    public SysConfigPo getConfig() {
        SysConfigPo sysConfigPo = this.lambdaQuery().last("limit 1").one();
        Optional.ofNullable(sysConfigPo)
                .ifPresent(configPo -> {
                    configPo.setLogoUrl(sysFileService.getViewFile(configPo.getLogo()));
                });
        return sysConfigPo;
    }

    @Override
    public void update(SysConfigReq sysConfigReq) {
        SysConfigPo sysConfigPo = getConfig();
        BeanUtil.copyProperties(sysConfigReq, sysConfigPo);
        sysConfigPo.setUpdateBy(null);
        sysConfigPo.setUpdateTime(null);
        this.saveOrUpdate(sysConfigPo);
    }
}
